In packetized storage protocols, multiple outstanding data frames are generated for a particular input/output (IO) command. Moreover, there are specific requirements and/or restrictions requiring the data frames to be transmitted in order. However, transmitting frames in their relative offset order limits IO performance. For example, ordering frames prior to transmission takes a significant amount of time in overall IO processing. Particularly, it requires a lot of time in seeking if the data of the same IO are scattered across the storage drive medium platter (due to bad blocks for instance) and the head has to move back and forth to read/retrieve those data in their relative offset order.
Transmitting data based on data availabilities has become more desirable to improve IO performance. In some configurations, such as serial Advanced Technology Attachment (ATA) (SATA) native command queuing (NCQ) protocol, a transmitting device may be allowed to transmit data Frame Information Structure (FIS) out of order. Nevertheless, transmitting frames out of order would require the receiving device to reorder the frames.